﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ArrayOfMyElement">
    <xs:annotation>
      <xs:documentation>
        The root element that wraps up all UIElements into an array that's consumed by KAF.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="MyElement" minOccurs="1" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MyElement">
    <xs:annotation>
      <xs:documentation>
        Represents a generic object in the user interface such as a button or text box.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:all>
        <xs:element name="Name" minOccurs="1" maxOccurs="1" type="xs:token">
          <xs:annotation>
            <xs:documentation>
              The name of the UI element. This name should be unique to each element, as its used as a key to
              retrieve the element from the UIElement Factory.
            </xs:documentation>
          </xs:annotation>
        </xs:element>        
        <xs:element ref="AttributeLists" minOccurs="1" maxOccurs="1" />
      </xs:all>
    </xs:complexType>
  </xs:element> 
  <xs:element name="AttributeLists">
    <xs:annotation>
      <xs:documentation>
        Repro
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ArrayOfNameValuePair" minOccurs="1" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ArrayOfNameValuePair">
    <xs:annotation>
      <xs:documentation>
        Repro
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="NameValuePair" minOccurs="1" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="NameValuePair">
    <xs:annotation>
      <xs:documentation>
        Repro
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:all>
        <xs:element name="Name" minOccurs="1" maxOccurs="1" type="xs:token">
          <xs:annotation>
            <xs:documentation>
              The name of the attribute.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Value" minOccurs="1" maxOccurs="1" type="xs:token">
          <xs:annotation>
            <xs:documentation>
              The value of the attribute.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>